home *** CD-ROM | disk | FTP | other *** search
/ Interactive Music Game / Music Game (1994)(Microforum).iso / setup / setup1.frm < prev    next >
Text File  |  1994-06-01  |  12KB  |  351 lines

  1. VERSION 2.00
  2. Begin Form Setup1 
  3.    BackColor       =   &H00400000&
  4.    Caption         =   "Test App Setup"
  5.    ClientHeight    =   2130
  6.    ClientLeft      =   1860
  7.    ClientTop       =   2610
  8.    ClientWidth     =   5640
  9.    ControlBox      =   0   'False
  10.    FillStyle       =   0  'Solid
  11.    FontBold        =   -1  'True
  12.    FontItalic      =   -1  'True
  13.    FontName        =   "MS Sans Serif"
  14.    FontSize        =   24
  15.    FontStrikethru  =   0   'False
  16.    FontUnderline   =   0   'False
  17.    ForeColor       =   &H00000000&
  18.    Height          =   2535
  19.    Icon            =   SETUP1.FRX:0000
  20.    Left            =   1800
  21.    LinkMode        =   1  'Source
  22.    LinkTopic       =   "Form3"
  23.    MaxButton       =   0   'False
  24.    MinButton       =   0   'False
  25.    ScaleHeight     =   142
  26.    ScaleMode       =   3  'Pixel
  27.    ScaleWidth      =   376
  28.    Top             =   2265
  29.    Width           =   5760
  30.    Begin DriveListBox Drive1 
  31.       Height          =   315
  32.       Left            =   3720
  33.       TabIndex        =   2
  34.       Top             =   1680
  35.       Visible         =   0   'False
  36.       Width           =   1815
  37.    End
  38.    Begin Label Label2 
  39.       BorderStyle     =   1  'Fixed Single
  40.       Caption         =   "To customize this setup program, modify the FORM_LOAD event procedure in this form."
  41.       Height          =   435
  42.       Left            =   15
  43.       TabIndex        =   1
  44.       Top             =   15
  45.       Visible         =   0   'False
  46.       Width           =   5625
  47.    End
  48.    Begin Label Label1 
  49.       BorderStyle     =   1  'Fixed Single
  50.       Caption         =   "This label used for DDE connection to the Program Manager"
  51.       Height          =   390
  52.       Left            =   15
  53.       TabIndex        =   0
  54.       Top             =   525
  55.       Visible         =   0   'False
  56.       Width           =   5610
  57.    End
  58. End
  59.  
  60. Const APPNAME = "The Music Game"
  61. Const APPDIR = "C:\MUSICGAM"    ' The default install directory
  62. Const fDataAccess% = False
  63. Const fODBC% = False
  64. Const fBtrieve% = False
  65. Const fOLE2% = False
  66.  
  67. ' Set the total uncompressed file sizes
  68. ' by adding the sizes of the files
  69. Const WINSYSNEEDED = 1024  ' Files that go into WINDOWS and SYSTEM directory
  70. Const OTHERNEEDED = 1024   ' Files that don't go into the WINDOWS or SYSTEM directory
  71.  
  72. Sub DrawBackground ()
  73.     Setup1.CurrentY = 5
  74.     Setup1.CurrentX = 5
  75.     Setup1.ForeColor = QBColor(15)
  76.     Print APPNAME + " Setup"
  77. End Sub
  78.  
  79. Sub Form_Load ()
  80.     '----------
  81.     ' Initialize
  82.     '----------
  83.     dialogCaption$ = APPNAME + " Setup"
  84.     ShowMainForm dialogCaption$
  85.  
  86.     winDrive$ = UCase$(Left$(winDir$, 1))
  87.     winDir$ = UCase$(GetWindowsDir$())
  88.     winSysDir$ = UCase$(GetWindowsSysDir$())
  89.     
  90.     '----------------------------------------------------
  91.     ' Get Window version
  92.     '----------------------------------------------------
  93.     TheVerInfo& = GetVersion()
  94.     WinVer& = TheVerInfo& And &HFFFF&
  95.     If Val(Format$(WinVer& Mod 256) + "." + Format$(WinVer& \ 256)) >= 3.1 Then
  96.     gfWin31% = True
  97.     End If
  98.     
  99.     '----------------------------------------------------
  100.     ' OLE 2.0 requires Win 3.1 or greater
  101.     '----------------------------------------------------
  102.     If fOLE2% And Not gfWin31% Then
  103.     MsgBox "This application requires Windows 3.1 or later"
  104.     GoTo ErrorSetup
  105.     End If
  106.  
  107.     '----------------------------------------------------
  108.     ' SETUP.EXE passes the source drive in a command
  109.     ' argument.  If it is empty,  that means the user
  110.     ' executed this .exe directly.  In that case, show
  111.     ' a dialog to get the desired source directory.
  112.     '----------------------------------------------------
  113.     SourcePath$ = Command$
  114.     If SourcePath$ = "" Then
  115.     title$ = dialogCaption$
  116.     caption1$ = "Please enter the drive or path containing the " + APPNAME + " source files."
  117.     caption2$ = "Install From:"
  118.     defaultDrive$ = drive1.Drive
  119.     defaultText$ = drive1.Drive + "\"
  120.  
  121.     ShowPathDialog title$, caption1$, caption2$, defaultDrive$, defaultText$, SourcePath$, outButton$
  122.  
  123.     If outButton$ = "exit" Then GoTo ErrorSetup
  124.     Else
  125.     If Right$(SourcePath$, 1) <> "\" Then
  126.         SourcePath$ = SourcePath$ + "\"
  127.     End If
  128.     End If
  129.  
  130.  
  131.     '--------------------
  132.     ' Get Destination Path
  133.     '--------------------
  134.     title$ = dialogCaption$
  135.     caption1$ = "If you want to install the Music Game in a different directory and/or drive, type the name of the directory."
  136.     caption2$ = "Install To:"
  137.     defaultDrive$ = "C:"
  138.     defaultText$ = APPDIR
  139.  
  140.     ShowPathDialog title$, caption1$, caption2$, defaultDrive$, defaultText$, DestPath$, outButton$
  141.  
  142.     If outButton$ = "exit" Then GoTo ErrorSetup
  143.    
  144.  
  145.  
  146.     '-----------------------------------------
  147.     ' Dim disk space variables as Long Integers
  148.     '-----------------------------------------
  149.     Dim winSpaceFree As Long
  150.     Dim sourceSpaceFree As Long
  151.     Dim destSpaceFree As Long
  152.     Dim totalNeeded As Long
  153.  
  154.     '---------------------------------------------------------
  155.     ' If the Windows \SYSTEM directory is a subdirectory
  156.     ' of the Windows directory, the proper place for
  157.     ' installation of .VBXs and shared .DLLs is the
  158.     ' Windows \SYSTEM directory.
  159.     '
  160.     ' If the Windows \SYSTEM directory is *not* a subdirectory
  161.     ' of the Windows directory, then the user is running a
  162.     ' shared version of Windows, and the proper place for
  163.     ' installation of .VBXs and shared .DLLs is the
  164.     ' Windows directory.
  165.     '---------------------------------------------------------
  166.     If InStr(winSysDir$, winDir$) = 0 Then
  167.     winSysDir$ = winDir$
  168.     End If
  169.  
  170.     
  171.     '---------------------------------
  172.     ' Get Drive Letters of directories
  173.     '---------------------------------
  174.     destDrive$ = UCase$(Left$(DestPath$, 1))
  175.     sourceDrive$ = UCase$(Left$(SourcePath$, 1))
  176.  
  177.     '---------------------------------
  178.     ' Compute free disk space variables
  179.     '---------------------------------
  180.     winSpaceFree = GetDiskSpaceFree(winDrive$)
  181.     destSpaceFree = GetDiskSpaceFree(destDrive$)
  182.     
  183.     '-----------------------------------------
  184.     ' Check for enough disk space.
  185.     '
  186.     ' Some components are being installed into the
  187.     ' Windows\SYSTEM directory.
  188.     '
  189.     ' So if the main destination path is on a
  190.     ' different drive than the drive with
  191.     ' the Windows \SYSTEM directory, we have to
  192.     ' check both drives.
  193.     '
  194.     ' An example of this is when the user is installing
  195.     ' the main product to drive D:, but the Windows
  196.     ' directory is on drive c:
  197.     ' -----------------------------------------
  198.     totalNeeded = WINSYSNEEDED + OTHERNEEDED
  199.     
  200.     If winDrive$ = destDrive$ Then
  201.     If destSpaceFree < totalNeeded Then
  202.         MsgBox "There is not enough disk space on drive " + destDrive$ + ":   An estimated" + Str$(totalNeeded - destSpaceFree) + " additional bytes are needed.", 16, dialogCaption$
  203.         GoTo ErrorSetup
  204.     End If
  205.     Else
  206.     If winSpaceFree < WINSYSNEEDED Then
  207.         MsgBox "There is not enough disk space on drive " + winDrive$ + ":  An estimated" + Str$(WINSYSNEEDED - winSpaceFree) + " additional bytes are needed.", 16, dialogCaption$
  208.         GoTo ErrorSetup
  209.     End If
  210.     If destSpaceFree < OTHERNEEDED Then
  211.         MsgBox "There is not enough disk space on drive " + destDrive$ + ":  An estimated" + Str$(OTHERNEEDED - destSpaceFree) + " additional bytes are needed.", 16, dialogCaption$
  212.         GoTo ErrorSetup
  213.     End If
  214.     
  215.     End If
  216.  
  217.  
  218.  
  219.     '----------------------------
  220.     ' Create destination directory
  221.     '----------------------------
  222.     If Not CreatePath(DestPath$) Then GoTo ErrorSetup
  223.     
  224.  
  225.     '-----------------------------------------------------------
  226.     ' Show Status Dialog -- This stays up while copying files
  227.     ' It is required by the CopyFile routine
  228.     '-----------------------------------------------------------
  229.     ShowStatusDialog dialogCaption$, totalNeeded
  230.     
  231.     
  232.     '-----------
  233.     ' Copy Files
  234.     '-----------
  235.     If Not CopyFile(SourcePath$, DestPath$, "stacks.dat", "stacks.dat") Then GoTo ErrorSetup
  236.  
  237.     '--------------------------------------------------
  238.     ' File Copying is over, so unload the status dialog
  239.     '--------------------------------------------------
  240.     Unload StatusDlg
  241.  
  242.  
  243.     '-----------------------------------------------------------
  244.     ' Show static message while working on DDE to Program Manager
  245.     '-----------------------------------------------------------
  246.     ShowStaticMessageDialog dialogCaption$, "Creating Program Manager Icon..."
  247.  
  248.  
  249.     '--------------------------------------
  250.     ' Create program manager group and icon
  251.     '--------------------------------------
  252.     CreateProgManGroup Setup1, "The Music Game CD", "MUSICGAM.GRP"
  253.     CreateProgManItem Setup1, SourcePath$ + "MUSICGM.EXE", "The Music Game"
  254.  
  255.  
  256.     '-------------------
  257.     ' Hide Static Message
  258.     '-------------------
  259.     MessageDlg.Hide
  260.     
  261.     '-------------------------------------------------------------------
  262.     ' update the MUSICGAM.INI file with the selected drive and directory
  263.     '-------------------------------------------------------------------
  264.     szMFApplication$ = "The Music Game CD"
  265.     szIniFile$ = "MUSICGAM.INI"
  266.     x = WritePrivateProfileString(szMFApplication$, "SAVEDIR", DestPath$, szIniFile$)
  267.  
  268.     '------------------
  269.     ' Show Final message
  270.     '------------------
  271.     MsgBox APPNAME + " Installation is Complete!", 48, dialogCaption$
  272.    
  273. ExitSetup:
  274.     Setup1.Hide
  275.     RestoreProgMan         'Show the program manager
  276.     End
  277.     Exit Sub
  278.  
  279. ErrorSetup:
  280.     MsgBox APPNAME + " is not properly installed.  Please re-run setup at a later time to install the Test Application properly.", 48, dialogCaption$
  281.     ChDrive winDrive$   ' Set back to hard disk
  282.     ChDir Left$(winDir$, Len(winDir$) - 1)
  283.     End
  284.     Exit Sub
  285.     
  286. End Sub
  287.  
  288. Sub Form_Paint ()
  289.     DrawBackground
  290. End Sub
  291.  
  292. '---------------------------------------------------------------
  293. ' Sets the form's caption, Paints 3-D Background Text, Shows Form
  294. '---------------------------------------------------------------
  295. Sub ShowMainForm (Caption$)
  296.     Screen.MousePointer = 11
  297.     Setup1.Caption = Caption$
  298.     Setup1.Move 0, 0, Screen.Width, Screen.Height * .85
  299.     Setup1.Show
  300.     Setup1.Refresh
  301.  
  302.     Setup1.ScaleMode = 2
  303.     Setup1.FontSize = 24
  304.     Setup1.FontBold = True
  305.     Setup1.FontItalic = True
  306.     
  307.     DrawBackground
  308. End Sub
  309.  
  310. Sub ShowPathDialog (title$, caption1$, caption2$, defaultDrive$, defaultText$, SourcePath$, outButton$)
  311.     Screen.MousePointer = 11
  312.     Load PathDlg
  313.     PathDlg.Caption = title$
  314.     PathDlg.Label1.Caption = caption1$
  315.     PathDlg.Label2.Caption = caption2$
  316.     PathDlg.inDrive.Tag = defaultDrive$
  317.     PathDlg.Text1.Text = defaultText$
  318.     PathDlg.Text1.SelStart = 0
  319.     PathDlg.Text1.SelLength = Len(defaultText$)
  320.     CenterForm PathDlg
  321.     Screen.MousePointer = 0
  322.  
  323.     PathDlg.Show 1
  324.     
  325.     SourcePath$ = PathDlg.outPath.Tag
  326.     outButton$ = PathDlg.outButton.Tag
  327.     Unload PathDlg
  328. End Sub
  329.  
  330. Sub ShowStaticMessageDialog (title$, Caption$)
  331.  
  332.     Load MessageDlg
  333.     CenterForm MessageDlg
  334.     MessageDlg.Caption = title$
  335.     MessageDlg.Label.Caption = Caption$
  336.     MessageDlg.Show
  337.     MessageDlg.Refresh
  338.  
  339. End Sub
  340.  
  341. Sub ShowStatusDialog (title$, totalBytes As Long)
  342.  
  343.     Load StatusDlg
  344.     StatusDlg.Caption = title$
  345.     StatusDlg.total.Tag = Str$(totalBytes)
  346.     CenterForm StatusDlg
  347.     StatusDlg.Show
  348.  
  349. End Sub
  350.  
  351.